home *** CD-ROM | disk | FTP | other *** search
/ Network PC / Network PC.iso / amiga utilities / disk utilities / backup / backup_restore / install-backup < prev    next >
Encoding:
Text File  |  1997-11-21  |  37.7 KB  |  1,410 lines

  1. ; ************************************************
  2. ; *
  3. ; * $VER: Install-Backup (06 Oct 1996 20:42:22)
  4. ; *
  5. ; * Installations-Script für Backup und Restore
  6. ; *
  7. ; * Copyright @ Jürgen Lachmann 1993-1996
  8. ; *
  9. ; ************************************************
  10.  
  11.  
  12. ; ****************************
  13. ; * Set up some global variables.
  14. ; ****************************
  15. ;
  16. (set #ProductName        "Backup")    ; product name
  17.  
  18. (set #BackupName        "Backup")
  19. (set #RestoreName        "Restore")
  20.  
  21. (set #BackupVersionNum        "3.20")        ; Backup version number
  22. (set #RestoreVersionNum        "3.20")        ; Restore version number
  23.  
  24. (set #OSVersion            (/ (getversion) 65536))
  25. (set #WBVersion            (/ (getversion "c:LoadWB") 65536))
  26.  
  27. (set #TotalFiles        0)
  28. (set #AccumFiles        0)
  29. (set #PctDone            0)
  30.  
  31. ; (set #Disk1Name            "Backup&Restore:")    ; actual name of disk 1
  32. (set #Disk1Name            "")            ; actual name of disk 1
  33.  
  34. (set #DiskInstall        #Disk1Name)        ; installation (main) disk
  35. (set #DiskLHA            #Disk1Name)        ; Lhx program disk
  36. (set #DiskBackup        #Disk1Name)        ; Backup program disk
  37. (set #DiskRestore        #Disk1Name)        ; Restore program disk
  38. (set #DiskSamples        #Disk1Name)        ; Samples default files
  39. (set #DiskSource        #Disk1Name)        ; Source default files
  40.  
  41.  
  42. ; die FileCount-Werte sind nur Anhaltswerte für die Fortschritts-Anzeige
  43. (set #BackupFileCount        2)            ; Backup + Icon
  44. (set #RestoreFileCount        2)            ; Restore + Icon
  45. (set #BackupHelpFileCount    24)            ; Backup/Guide/#?
  46. (set #RestoreHelpFileCount    18)            ; Restore/Guide/#?
  47. (set #SampleFileCount        22)            ; BackupScripts/#?
  48. (set #BackupSourceFileCount    77)
  49. (set #RestoreSourceFileCount    62)
  50.  
  51. (set #LHAName            (TACKON #DiskLHA "lhx -I"))
  52. (set #BackupBinLHA        (TACKON #DiskBackup (cat "Backup_Bin_V" #BackupVersionNum ".lha")))
  53. (set #BackupSrcLHA        (TACKON #DiskBackup (cat "Backup_Src_V" #BackupVersionNum ".lha")))
  54. (set #RestoreBinLHA        (TACKON #DiskRestore (cat "Restore_Bin_V" #RestoreVersionNum ".lha")))
  55. (set #RestoreSrcLHA        (TACKON #DiskRestore (cat "Restore_Src_V" #RestoreVersionNum ".lha")))
  56.  
  57. (set #BackupExecFiles        "Backup Backup.info")
  58. (set #RestoreExecFiles        "Restore Restore.info")
  59. (set #BackupHelpFiles        "Guide/#?")
  60. (set #RestoreHelpFiles        "Guide/#?")
  61. (set #BackupSampleFiles        "#?TAP#? BackupScripts/#?" )
  62. (set #BackupSourceFiles        "#?")
  63. (set #RestoreSourceFiles    "#?")
  64.  
  65. (set #DefaultDestination    "SYS:Backup")
  66.  
  67. (set #BackupDir         (TACKON #DefaultDestination " "))
  68. (set #RestoreDir        (TACKON #DefaultDestination " "))
  69. (set #BackupHelpDir        (TACKON #DefaultDestination "Guide"))
  70. (set #RestoreHelpDir        (TACKON #DefaultDestination "Guide"))
  71. (set #BackupScriptDir        (TACKON #DefaultDestination "BackupScripts"))
  72. (set #BackupSourceDir        (TACKON #DefaultDestination "BackupSource"))
  73. (set #RestoreSourceDir        (TACKON #DefaultDestination "RestoreSource"))
  74. (set #BackupCatalogDir        (TACKON #DefaultDestination "BackupCatalogs"))
  75.  
  76. (set #BackupGuide        (cat #BackupName ".guide"))
  77. (set #RestoreGuide        (cat #RestoreName ".guide"))
  78.  
  79. (set #BackupDiskSave        "T:Backup_DiskSave")
  80. (set #TapeDriveDataBase        "S:Backup.TapeDriveData")
  81. (set #BackupAppIconName        (TACKON #DefaultDestination "Backup_AppIcon"))
  82.  
  83.  
  84. ; bei einem Installer >= 42.x wird hiermit Proportionalschrift bei "askoptions" eingeschaltet
  85. (if (>= @installer-version 42)
  86.     (set #AskPrefix "\x1b[2p")
  87.     (set #AskPrefix "")
  88. )
  89.  
  90.  
  91. (procedure P_setPkgOpts
  92. ;
  93. ; ****************************
  94. ; * Ask the user which parts of the package should be installed.
  95. ; ****************************
  96. ;
  97.     (
  98.     (set #setPkgHelp
  99.         (cat ("Dieser Teil der Installationsprozedur ermöglicht Ihnen die Auswahl der Teile des %s Pakets," #ProductName
  100.         "die Sie jetzt installieren möchten.\n" #ProductName)
  101.         "\n\n"
  102.         ("*** %s\n" #BackupName)
  103.         ("Diese Option ermöglicht Ihnen die Installation des Datensicherungsprogrammes %s." #BackupName)
  104.         "\n\n"
  105.         ("*** %s\n" #RestoreName)
  106.         ("Diese Option ermöglicht Ihnen die Installation des Programmes zur ")
  107.         ("Datenrücksicherung %s." #RestoreName)
  108.         "\n\n"
  109.         ("*** Hilfe-Dateien\n")
  110.         ("Diese Option ermöglicht Ihnen die Installation der Hilfedateien für %s und %s." #ProductName #RestoreName)
  111.         "\n\n"
  112.         ("*** Beispiel-BackupScripts\n")
  113.         ("Diese Option ermöglicht Ihnen die Installation von Beispielen für Backup-SkriptDateien.")
  114.         "\n\n"
  115.         ("*** Backup-Quellcode\n")
  116.         ("Diese Option ermöglicht Ihnen die Installation des C-Quellcodes für Backup.")
  117.         "\n\n"
  118.         ("*** Restore-Quellcode\n")
  119.         ("Diese Option ermöglicht Ihnen die Installation des C-Quellcodes für Restore.")
  120.         "\n"
  121.         @askoptions-help
  122.         )
  123.     )
  124.     (select (exists #BackupSrcLHA (noreq))
  125.         (set #PkgOptBackupSrcChoice  "")
  126.         (set #PkgOptBackupSrcChoice "Quellcode zu Backup")
  127.     )
  128.     (select (exists #RestoreSrcLHA (noreq))
  129.         (set #PkgOptRestoreSrcChoice  "")
  130.         (set #PkgOptRestoreSrcChoice "Quellcode zu Restore")
  131.     )
  132.     (set #PkgOpts
  133.         (askoptions
  134.             (prompt
  135.                 ("Bitte wählen Sie die Teile des %s Pakets, die Sie jetzt installieren möchten" #ProductName)
  136.             )
  137.             (help #setPkgHelp)
  138.             (choices
  139.                 ; bit position 0 -- todo & 1
  140.                 ;
  141.                 ("%s%s V%s" #AskPrefix #BackupName #BackupVersionNum)
  142.  
  143.                 ; bit position 1 -- todo & 2
  144.                 ;
  145.                 ("%s V%s" #RestoreName #RestoreVersionNum)
  146.  
  147.                 ; bit position 2 -- todo & 4
  148.                 ;
  149.                 "Hilfe-Dateien"
  150.  
  151.                 ; bit position 3 -- todo & 8
  152.                 "Beispiel-BackupScripts"
  153.  
  154.                 ; bit position 4 -- todo & 16
  155.                 ("%s" #PkgOptBackupSrcChoice)
  156.  
  157.                 ; bit position 5 -- todo & 32
  158.                 ("%s" #PkgOptRestoreSrcChoice)
  159.             )
  160.             (default
  161.                 ; Backup + Restore + Helpfiles + Samples
  162.                 ; keine Quellcodes
  163.                 (+ 1 2 4 8)
  164.             )
  165.         )
  166.     )
  167.     )
  168. )
  169.  
  170.  
  171. (procedure P_setDirPath
  172. ;
  173. ; ****************************
  174. ; * Ask the user for a directory name.
  175. ; ****************************
  176. ;
  177. ; these variables must be defined before calling this procedure:
  178. ;    #setDirPathWhy
  179. ;    #setDirPathHelp
  180. ;    #DirPath
  181. ;
  182. ; this procedure returns the selected directory in #DirPath
  183. ;
  184.     (
  185.     (set #DirPath
  186.         (askdir
  187.             (prompt    ("Bitte wählen Sie das Verzeichnis, %s" #setDirPathWhy)
  188.             )
  189.             (help    #setDirPathHelp
  190.                 "\n"
  191.                 @askdir-help
  192.             )
  193.             (newpath)
  194.             (default #DirPath)
  195.         )
  196.     )
  197.     )
  198. )
  199.  
  200.  
  201. (procedure P_setFilePath
  202. ;
  203. ; ****************************
  204. ; * Ask the user for a File name.
  205. ; ****************************
  206. ;
  207. ; these variables must be defined before calling this procedure:
  208. ;    #setFilePathWhy
  209. ;    #setFilePathHelp
  210. ;    #FilePath
  211. ;
  212. ; this procedure returns the selected File in #FilePath
  213. ;
  214.  
  215.     (
  216.     (if (not (askbool
  217.         (prompt (cat "Hier sehen Sie die Datei, "
  218.                 #setFilePathWhy
  219.             "\n\n"
  220.             ('"%s"' #FilePath)
  221.             "\n\nMöchten Sie Namen oder Pfad dieser Datei jetzt "
  222.             "ändern oder unverändert übernehmen?"
  223.             )
  224.         )
  225.         (help #setFilePathHelp)
  226.         (default 0)
  227.         (choices "Übernehmen" "Ändern")
  228.         ))
  229.         (
  230.         (set #FilePath
  231.             (askfile
  232.                 (prompt    ("Bitte wählen Sie, %s" #setFilePathWhy)
  233.                 )
  234.                 (help    #setFilePathHelp
  235.                     "\n"
  236.                     @askfile-help
  237.                 )
  238.                 'newpath'
  239.                 (default #FilePath)
  240.             )
  241.         )
  242.         )
  243.     )
  244.     )
  245. )
  246.  
  247.  
  248. (procedure P_deleteIfExists
  249. ;
  250. ; ****************************
  251. ; * Delete the given file, if it exists.
  252. ; ****************************
  253. ;
  254. ; these variables must be defined before calling this procedure:
  255. ;
  256. ;    #deleteDir #deleteFileName #deleteWorkingText
  257. ;
  258.     (if (exists #deleteDir)
  259.         (
  260.         (working #deleteWorkingText)
  261.         (if (NOT @pretend)
  262.             (
  263.             (foreach #deleteDir
  264.                 #deleteFileName
  265.                 (
  266.                 (transcript "Deleted " @each-name)
  267.                 (protect @each-name "+wd")
  268.                 (delete @each-name)
  269.                 )
  270.             )
  271.             )
  272.         )
  273.         )
  274.     )
  275. )
  276.  
  277.  
  278. (procedure P_renameIfExists
  279. ;
  280. ; ****************************
  281. ; * Rename the given file, if it exists.
  282. ; ****************************
  283. ;
  284. ; these variables must be defined before calling this procedure:
  285. ;
  286. ;    #origFileName
  287. ;    #renameFileName
  288. ;
  289.     (
  290.     (if (= (exists #origFileName) 1)
  291.         (
  292.         (protect #origFileName "+rwed")
  293.         (rename #origFileName #deleteFileName)
  294.         (transcript "Renamed file " #origFileName " to " #deleteFileName)
  295.         )
  296.     )
  297.     )
  298. )
  299.  
  300.  
  301. (procedure P_BuildLHADir
  302. ;
  303. ; ****************************
  304. ; * Append "/" to #LHADir
  305. ; ****************************
  306. ;
  307. ;    #LHADir
  308. ;
  309.     (
  310.     (set #LHADir (TACKON #LHADir "X"))
  311.     (set #LHADirLen (strlen #LHADir))
  312.     (set #LHADir (substr #LHADir 0 (- #LHADirLen 1)))
  313.     )
  314. )
  315.  
  316.  
  317. (procedure P_AppendAmigaGuidePath
  318. ;
  319. ; ****************************
  320. ; * der Pfad #AGHelpDir wird an ENV:AmigaGuide/Path angehängt
  321. ; ****************************
  322. ;
  323. ;    #AGHelpDir #AGProgram
  324. ;
  325.     (
  326.     (if (= (exists "ENV:" (noreq)) 2)
  327.         (
  328.         (if (<> (exists "ENV:AmigaGuide") 2)
  329.             (makedir "ENV:AmigaGuide"
  330.             (confirm)
  331.             (prompt "Verzeichnis ENV:AmigaGuide für die Voreinstellungen von AmigaGuide® wird angelegt."
  332.             )
  333.             (help "In diesem Verzeichnis liegen verschiedene Voreinstellungen für das "
  334.                 "Hilfe-System AmigaGuide®."
  335.             )
  336.             )
  337.         )
  338.  
  339.         (if (= (exists "ENV:AmigaGuide") 2)
  340.             (
  341.             (working
  342.                 ("Hilfe-Verzeichnis %s in ENV:AmigaGuide/Path aufnehmen..." #AGHelpDir)
  343.             )
  344.  
  345.             ; Help Directory in ENV:AmigaGuide/Path aufnehmen
  346.             (run
  347.                 (prompt ("Jetzt wird das Verzeichnis %s mit den Hilfe-Dateien " #AGHelpDir)
  348.                     ("für %s in ENV:AmigaGuide/Path eingetragen." #AGProgram)
  349.                     )
  350.                 (help ("Damit AmigaGuide® die Hilfe-Dateien für %s " #AGProgram)
  351.                     ("findet, muß das Verzeichnis %s " #AGHelpDir)
  352.                     "in ENV:AmigaGuide/Path eingetragen werden."
  353.                     )
  354.                 (confirm)
  355.                 (cat (TackOn #DiskInstall "AddAGPath") " " #AGHelpDir)
  356.             )
  357.             (copyfiles
  358.                 (prompt "Jetzt wird die ergänzte Version von ENV:AmigaGuide/Path "
  359.                     "nach ENVARC:AmigaGuide/Path kopiert"
  360.                 )
  361.                 (help "Damit die ergänzte Fassung von ENV:AmigaGuide/Path auch nach dem "
  362.                     "Ausschalten Ihres Amiga erhalten bleibt, wird sie jetzt "
  363.                     "in das Verzeichnis ENVARC:AmigaGuide/Path kopiert.")
  364.                 (confirm)
  365.                 (source "ENV:AmigaGuide/Path")
  366.                 (dest   "ENVARC:AmigaGuide")
  367.                 (infos)
  368.             )
  369.             )
  370.         )
  371.         )
  372.     )
  373.     )
  374. )
  375.  
  376.  
  377. (procedure P_incrementMeter
  378. ;
  379. ; ****************************
  380. ; * Increment the progress meter indicator.
  381. ; ****************************
  382. ;
  383. ;    #addToMeter
  384. ;
  385.     (
  386.     (set #PctDone    (/ (* #AccumFiles 100) #TotalFiles))
  387.     (set #AccumFiles    (+ #AccumFiles #addToMeter))
  388.     (complete #PctDone)
  389.     )
  390. )
  391.  
  392.  
  393. ; ****************************
  394. ; * gemeinsames Verzeichnis für
  395. ; * die Sicherungsprotokolle anlegen
  396. ; ****************************
  397. ;
  398. (procedure P_CreateCatalogDir
  399.     (
  400.     (if (<> (exists #BackupCatalogDir) 2)
  401.         (
  402.         (makedir #BackupCatalogDir
  403.             (infos)
  404.             (confirm)
  405.             (prompt ("Verzeichnis '%s' für die Sicherungs-Protokolle " #BackupCatalogDir)
  406.                 ("des Programms %s wird angelegt" #BackupName)
  407.             )
  408.             (help "In diesem Verzeichnis werden Protokolle "
  409.                 "aller Sicherungsläufe abgelegt (soweit eingeschaltet).\n"
  410.                 ("Dieses Verzeichnis wird sowohl von %s als " #BackupName)
  411.                 ("von %s benutzt." #RestoreName)
  412.             )
  413.         )
  414.         )
  415.     )
  416.     )
  417. )
  418.  
  419.  
  420.  
  421. ; ****************************
  422. ; * Backup Installation routine
  423. ; ****************************
  424. ;
  425. (procedure P_BackupInstall
  426.     (
  427.     ; ****************************
  428.     ; * Install the Program
  429.     ; ****************************
  430.     ;
  431.     (set #addToMeter    #BackupFileCount)
  432.     (P_incrementMeter)
  433.  
  434.     ; alte vorhandene Backup-Files löschen
  435.     (set #deleteWorkingText ("Alte Teile von %s werden entfernt..." #BackupName))
  436.     (set #deleteDir        #BackupDir)
  437.     (set #deleteFileName    #BackupExecFiles)
  438.     (P_deleteIfExists)
  439.  
  440.     (set #LHADir #BackupDir)
  441.     (P_BuildLHADir)
  442.  
  443.     (working
  444.         ("%s wird ausgepackt..." #BackupName)
  445.     )
  446.  
  447.     (if (<> (exists #BackupDir) 2)
  448.         (
  449.         (makedir #BackupDir
  450.             (infos)
  451.             (confirm)
  452.             (prompt ("Verzeichnis '%s' für das Programm %s wird angelegt" #BackupDir #BackupName)
  453.             )
  454.             (help ("In diesem Verzeichnis wird das Programm %s abgelegt." #BackupName))
  455.         )
  456.         )
  457.     )
  458.  
  459.     (P_CreateCatalogDir)
  460.  
  461. ;    (debug ("%s e \"%s\" %s \"%s\"" #LHAName #BackupBinLHA #BackupExecFiles #LHADir))
  462.     (run
  463.         (prompt ("Jetzt werden die Programmdateien für %s ausgepackt und im Verzeichnis %s installiert." #BackupName #BackupDir)
  464.             )
  465.         (help ("Die Programmdateien für %s müssen aus dem Archiv %s mit Lha" #BackupName #BackupBinLHA)
  466.             (" ausgepackt werden und werden dann im Verzeichnis %s abgelegt." #BackupDir)
  467.             )
  468.         (confirm)
  469.         ("%s e \"%s\" %s \"%s\"" #LHAName #BackupBinLHA #BackupExecFiles #LHADir)
  470.     )
  471.     (transcript ("Unpacked from %s: %s to %s" #BackupBinLHA #BackupExecFiles #BackupDir))
  472.  
  473.  
  474.     ; Tool Types für Backup einstellen
  475.     (tooltype
  476.     (prompt ("Es werden folgende Einstellungen in das %s Piktogramm (Icon) übernommen:\n" #BackupName)
  477.         ("\nPROTFILENAME=%s" (cat "\"" (tackon #BackupCatalogDir "Backup.%d.%t.Directory") "\"") )
  478.         ("\nSCRIPTPATH=%s" (cat "\"" #BackupScriptDir "\""))
  479.         ("\nHELPPATH=%s" #BackupHelpDir)
  480.         ("\nAPPICONNAME=%s" #BackupAppIconName)
  481.         ("\nDISKSAVE=%s" #BackupDiskSave)
  482.         ("\nTAPEDRIVEDATABASE=%s" #TapeDriveDataBase)
  483.     )
  484.     (help "Hier finden Sie nochmal alle Änderungen in den Piktogramm-Einstellungen "
  485.         ("(Tool Types) für %s, die jetzt vorgenommen werden sollen." #BackupName)
  486.     )
  487.     (dest (tackon #BackupDir #BackupName))
  488.     (noposition)
  489.     (confirm)
  490.     (settooltype "PROTFILENAME" (cat "\"" (tackon #BackupCatalogDir "Backup.%d.%t.Directory") "\"") )
  491.     (settooltype "SCRIPTPATH" (cat "\"" #BackupScriptDir "\""))
  492.     (settooltype "HELPPATH" #BackupHelpDir)
  493.     (settooltype "APPICONNAME" #BackupAppIconName)
  494.     (settooltype "DISKSAVE" #BackupDiskSave)
  495.     (settooltype "TAPEDRIVEDATABASE" #TapeDriveDataBase)
  496.     )
  497.     )
  498. )
  499.  
  500.  
  501. ; ****************************
  502. ; * Restore Installation routine
  503. ; ****************************
  504. ;
  505. (procedure P_RestoreInstall
  506.     (
  507.     (set #addToMeter    #RestoreFileCount)
  508.     (P_incrementMeter)
  509.  
  510.     ; alte vorhandene Restore-Files löschen
  511.     (set #deleteWorkingText ("Alte Teile von %s werden entfernt..." #RestoreName))
  512.     (set #deleteDir     #RestoreDir)
  513.     (set #deleteFileName    #RestoreExecFiles)
  514.     (P_deleteIfExists)
  515.  
  516.     (set #LHADir #RestoreDir)
  517.     (P_BuildLHADir)
  518.  
  519.     (working
  520.         ("%s wird ausgepackt..." #RestoreName)
  521.     )
  522.  
  523.     (if (<> (exists #RestoreDir) 2)
  524.         (
  525.         (makedir #RestoreDir
  526.             (infos)
  527.             (confirm)
  528.             (prompt ("Verzeichnis '%s' für das Programm %s wird angelegt" #RestoreDir #RestoreName)
  529.             )
  530.             (help ("In diesem Verzeichnis wird das Programm %s abgelegt." #RestoreName))
  531.         )
  532.         )
  533.     )
  534.  
  535.     (P_CreateCatalogDir)
  536.  
  537. ;    (debug ("%s e \"%s\" %s \"%s\"" #LHAName #RestoreBinLHA #RestoreExecFiles #LHADir))
  538.     (run
  539.         (prompt ("Jetzt werden die Programmdateien für %s ausgepackt und im Verzeichnis %s installiert." #RestoreName #RestoreDir)
  540.             )
  541.         (help ("Die Programmdateien für %s müssen aus dem Archiv %s mit Lha " #RestoreName #RestoreBinLHA)
  542.             ("ausgepackt werden und werden dann im Verzeichnis %s abgelegt." #RestoreDir)
  543.             )
  544.         (confirm)
  545.         ("%s e \"%s\" %s \"%s\"" #LHAName #RestoreBinLHA #RestoreExecFiles #LHADir)
  546.     )
  547.     (transcript ("Unpacked from %s: %s to %s" #RestoreBinLHA #RestoreExecFiles #RestoreDir))
  548.  
  549.     ; Tool Types für Restore einstellen
  550.     (tooltype
  551.     (prompt ("Es werden folgende Einstellungen in das %s Piktogramm (Icon) übernommen:\n" #RestoreName)
  552.         ("\nCATALOGDIR=%s" (cat "\"" #BackupCatalogDir "\""))
  553.         ("\nHELPPATH=%s" #RestoreHelpDir)
  554.         ("\nTAPEDRIVEDATABASE=%s" #TapeDriveDataBase)
  555.     )
  556.     (help "Hier finden Sie nochmal alle Änderungen in den Piktogramm-Einstellungen "
  557.         ("(Tool Types) für %s, die jetzt vorgenommen werden sollen." #RestoreName)
  558.     )
  559.     (dest (tackon #RestoreDir #RestoreName))
  560.     (noposition)
  561.     (confirm)
  562.     (settooltype "CATALOGDIR" (cat "\"" #BackupCatalogDir "\""))
  563.     (settooltype "HELPPATH" #RestoreHelpDir)
  564.     (settooltype "TAPEDRIVEDATABASE" #TapeDriveDataBase)
  565.     )
  566.     )
  567. )
  568.  
  569.  
  570. ; ****************************
  571. ; * Help Files Installation routine
  572. ; ****************************
  573. ;
  574. (procedure P_HelpFilesInstall
  575.     (
  576.     (if (IN #PkgOpts 0)
  577.         (
  578.         (set #addToMeter    #BackupHelpFileCount)
  579.         (P_incrementMeter)
  580.  
  581.         ; alte vorhandene Backup-Hilfedateien löschen
  582.         (set #deleteWorkingText ("Alte Hilfe-Dateien für %s werden entfernt..." #BackupName))
  583.         (set #deleteDir     #BackupHelpDir)
  584.         (set #deleteFileName    #BackupHelpFiles)
  585.         (P_deleteIfExists)
  586.  
  587.         (set #LHADir #BackupHelpDir)
  588.         (P_BuildLHADir)
  589.  
  590.         (working
  591.             ("Hilfe-Dateien für %s werden ausgepackt..." #BackupName)
  592.         )
  593.  
  594.         (if (<> (exists #BackupHelpDir) 2)
  595.             (
  596.             (makedir #BackupHelpDir
  597.                 (infos)
  598.                 (confirm)
  599.                 (prompt ("Verzeichnis '%s' für die Hilfe-Dateien zum Programm %s wird angelegt"
  600.                     #BackupHelpDir #BackupName)
  601.                 )
  602.                 (help "In diesem Verzeichnis werden die verschiedenen Hilfe-Dateien für "
  603.                     ("das Programm %s abgelegt." #BackupName)
  604.                 )
  605.             )
  606.             )
  607.         )
  608.  
  609.         (run
  610.             (prompt ("Jetzt werden die Hilfe-Dateien für %s ausgepackt und im Verzeichnis %s installiert." #BackupName #BackupHelpDir)
  611.                 )
  612.             (help ("Die Hilfe-Dateien für %s müssen aus dem Archiv %s mit Lha " #BackupName #BackupBinLHA)
  613.                 ("ausgepackt werden und werden dann im Verzeichnis %s abgelegt." #BackupHelpDir)
  614.                 )
  615.             (confirm)
  616.             ("%s e -x2 \"%s\" %s \"%s\"" #LHAName #BackupBinLHA #BackupHelpFiles #LHADir)
  617.         )
  618.         (transcript ("Unpacked from %s: %s to %s" #BackupBinLHA #BackupHelpFiles #BackupHelpDir))
  619.  
  620.         ; Hilfe-Pfad in ENV_AmigaGuide eintragen
  621.         (set #AGHelpDir #BackupHelpDir)
  622.         (set #AGProgram #BackupName)
  623.         (P_AppendAmigaGuidePath)
  624.         )
  625.     )
  626.     (if (IN #PkgOpts 1)
  627.         (
  628.         (set #addToMeter    #RestoreHelpFileCount)
  629.         (P_incrementMeter)
  630.  
  631.         ; alte vorhandene Restore-Hilfefiles löschen
  632.         (set #deleteWorkingText ("Alte Hilfe-Dateien für %s werden entfernt..." #RestoreName))
  633.         (set #deleteDir     #RestoreHelpDir)
  634.         (set #deleteFileName    #RestoreHelpFiles)
  635.         (P_deleteIfExists)
  636.  
  637.         (set #LHADir #RestoreHelpDir)
  638.         (P_BuildLHADir)
  639.  
  640.         (working
  641.             ("%s %s werden ausgepackt..." "Hilfe-Dateien für" #RestoreName)
  642.         )
  643.  
  644.         (if (<> (exists #RestoreHelpDir) 2)
  645.             (
  646.             (makedir #RestoreHelpDir
  647.                 (infos)
  648.                 (confirm)
  649.                 (prompt ("Verzeichnis '%s' für die Hilfe-Dateien zum Programm %s wird angelegt"
  650.                     #RestoreHelpDir #RestoreName)
  651.                 )
  652.                 (help "In diesem Verzeichnis werden die verschiedenen Hilfe-Dateien für "
  653.                     ("das Programm %s abgelegt." #RestoreName)
  654.                 )
  655.             )
  656.             )
  657.         )
  658.  
  659.         (run
  660.             (prompt ("Jetzt werden die Hilfe-Dateien für %s ausgepackt und im Verzeichnis %s installiert." #RestoreName #RestoreHelpDir)
  661.                 )
  662.             (help ("Die Hilfe-Dateien für %s müssen aus dem Archiv %s mit Lha " #RestoreName #RestoreBinLHA)
  663.                 ("ausgepackt werden und werden dann im Verzeichnis %s abgelegt." #RestoreHelpDir)
  664.                 )
  665.             (confirm)
  666.             ("%s e -x2 \"%s\" %s \"%s\"" #LHAName #RestoreBinLHA #RestoreHelpFiles #LHADir)
  667.         )
  668.         (transcript ("Unpacked from %s: %s to %s" #RestoreBinLHA #RestoreHelpFiles #RestoreHelpDir))
  669.  
  670.         ; Hilfe-Pfad in ENV_AmigaGuide eintragen
  671.         (set #AGHelpDir #RestoreHelpDir)
  672.         (set #AGProgram #RestoreName)
  673.         (P_AppendAmigaGuidePath)
  674.         )
  675.     )
  676.  
  677.     )
  678. )
  679.  
  680.  
  681. ; ****************************
  682. ; * Sample Files Installation routine
  683. ; ****************************
  684. ;
  685. (procedure P_SamplesInstall
  686.     (
  687.     (set #addToMeter    #SampleFileCount)
  688.     (P_incrementMeter)
  689.  
  690.     (set #LHADir #BackupScriptDir)
  691.     (P_BuildLHADir)
  692.  
  693.     (working
  694.         ("%s %s werden installiert..." "Beispiel-Dateien für" #BackupName)
  695.     )
  696.  
  697.     (if (<> (exists #BackupScriptDir) 2)
  698.         (
  699.         (makedir #BackupScriptDir
  700.             (infos)
  701.             (confirm)
  702.             (prompt ("Verzeichnis '%s' für die Beispiel-Dateien zum Programm %s wird angelegt"
  703.                 #BackupScriptDir #BackupName)
  704.             )
  705.             (help "In diesem Verzeichnis werden die verschiedenen Beispiel-Dateien für "
  706.                 ("das Programm %s abgelegt." #BackupName)
  707.             )
  708.         )
  709.         )
  710.     )
  711.  
  712.     (run
  713.         (prompt ("Jetzt werden die Beispiel-Dateien für %s ausgepackt und im Verzeichnis %s installiert." #BackupName #BackupScriptDir)
  714.             )
  715.         (help ("Die Beispiel-Dateien für %s müssen aus dem Archiv %s mit Lha " #BackupName #BackupBinLHA)
  716.             ("ausgepackt werden und werden dann im Verzeichnis %s abgelegt." #BackupScriptDir)
  717.             )
  718.         (confirm)
  719.         ("%s -x2 e \"%s\" %s \"%s\"" #LHAName #BackupBinLHA #BackupSampleFiles #LHADir)
  720.     )
  721.     )
  722. )
  723.  
  724.  
  725. ; ****************************
  726. ; * Source code Installation routine
  727. ; ****************************
  728. ;
  729. (procedure P_SourceInstall
  730.     (
  731.     (if (IN #PkgOpts 0)
  732.         (
  733.         (set #addToMeter    #BackupSourceFileCount)
  734.         (P_incrementMeter)
  735.  
  736.         ; alten vorhandene Backup-Quellcode löschen
  737.         (set #deleteWorkingText ("Alte Quellcodes von %s werden entfernt..." #BackupName))
  738.         (set #deleteDir     #BackupSourceDir)
  739.         (set #deleteFileName    #BackupSourceFiles)
  740.         (P_deleteIfExists)
  741.  
  742.         (set #LHADir #BackupSourceDir)
  743.         (P_BuildLHADir)
  744.  
  745.         (working
  746.             ("Quellcode für %s wird installiert..." #BackupName)
  747.         )
  748.  
  749.         (if (<> (exists #BackupSourceDir) 2)
  750.             (
  751.             (makedir #BackupSourceDir
  752.                 (infos)
  753.                 (confirm)
  754.                 (prompt ("Verzeichnis '%s' für den Quellcode für das Programm %s wird angelegt"
  755.                     #BackupSourceDir #BackupName)
  756.                 )
  757.                 (help "In diesem Verzeichnis wird der gesamte Quellcode für "
  758.                     ("das Programm %s abgelegt." #BackupName)
  759.                 )
  760.             )
  761.             )
  762.         )
  763.  
  764.         (run
  765.             (prompt ("Jetzt wird der Quellcode für %s ausgepackt und im Verzeichnis %s installiert." #BackupName #BackupSourceDir)
  766.                 )
  767.             (help ("Der Quellcode für %s müssen aus dem Archiv %s mit Lha " #BackupName #BackupSrcLHA)
  768.                 ("ausgepackt werden und werden dann im Verzeichnis %s abgelegt." #BackupSourceDir)
  769.                 )
  770.             (confirm)
  771.             ("%s -x1 e \"%s\" %s \"%s\"" #LHAName #BackupSrcLHA
  772.                 #BackupSourceFiles #LHADir)
  773.         )
  774.         (transcript ("Unpacked from %s: %s to %s" #BackupSrcLHA
  775.                 #BackupSourceFiles #BackupSourceDir)
  776.         )
  777.         )
  778.     )
  779.     (if (IN #PkgOpts 1)
  780.         (
  781.         (set #addToMeter    #RestoreSourceFileCount)
  782.         (P_incrementMeter)
  783.  
  784.         ; alten vorhandene Restore-Quellcode löschen
  785.         (set #deleteWorkingText ("Alte Quellcodes von %s werden entfernt..." #RestoreName))
  786.         (set #deleteDir     #RestoreSourceDir)
  787.         (set #deleteFileName    #RestoreSourceFiles)
  788.         (P_deleteIfExists)
  789.  
  790.         (set #LHADir #RestoreSourceDir)
  791.         (P_BuildLHADir)
  792.  
  793.         (working
  794.             ("Quellcode für %s wird installiert..." #RestoreName)
  795.         )
  796.  
  797.         (if (<> (exists #RestoreSourceDir) 2)
  798.             (
  799.             (makedir #RestoreSourceDir
  800.                 (infos)
  801.                 (confirm)
  802.                 (prompt ("Verzeichnis '%s' für den Quellcode für das Programm %s wird angelegt"
  803.                     #RestoreSourceDir #RestoreName)
  804.                 )
  805.                 (help "In diesem Verzeichnis wird der gesamte Quellcode für "
  806.                     ("das Programm %s abgelegt." #RestoreName)
  807.                 )
  808.             )
  809.             )
  810.         )
  811.  
  812.         (run
  813.             (prompt ("Jetzt wird der Quellcode für %s ausgepackt und im Verzeichnis %s installiert." #RestoreName #RestoreSourceDir)
  814.                 )
  815.             (help ("Der Quellcode für %s müssen aus dem Archiv %s mit Lha " #RestoreName #RestoreSrcLHA)
  816.                 ("ausgepackt werden und werden dann im Verzeichnis %s abgelegt." #RestoreSourceDir)
  817.                 )
  818.             (confirm)
  819.             ("%s -x1 e \"%s\" %s \"%s\"" #LHAName #RestoreSrcLHA
  820.                 #RestoreSourceFiles #LHADir)
  821.         )
  822.         (transcript ("Unpacked from %s: %s to %s" #RestoreSrcLHA
  823.                 #RestoreSourceFiles #RestoreSourceDir)
  824.         )
  825.         )
  826.     )
  827.     )
  828. )
  829.  
  830.  
  831. ; ****************************
  832. ; * Locale Installation routine
  833. ; ****************************
  834. ;
  835. (procedure P_LocaleInstall
  836.     (
  837.     (set #addToMeter    2)                ; 2 set of locale files
  838.     (P_incrementMeter)
  839.  
  840.     (if (= (getassign "LOCALE" "a") "")
  841.         (
  842.         ; no LOCALE: assigned -- we cannot continue
  843.         ;
  844.         (message
  845.             "\nYou do not seem to have LOCALE: assigned to the directory "
  846.             "where the localization files are stored.\n"
  847.             "\n"
  848.             "Please install the system software localization files before "
  849.             "retrying this installation.\n"
  850.             "\n\n"
  851.             "Press either the Proceed or Abort Install button to abort "
  852.             "this installation.\n")
  853.         (P_cleanUp)
  854.         (exit (quiet))
  855.         )
  856.         (
  857.         ; LOCALE: was found
  858.         ;
  859.         (if (<> (exists "LOCALE:Catalogs") 2)
  860.             (
  861.             (makedir "LOCALE:Catalogs")
  862.             (if (<> (exists "LOCALE:Catalogs") 2)
  863.                 (
  864.                 (message
  865.                     "\nThe directory:\n\nLOCALE:Catalogs\n\n"
  866.                     "could not be created.  This installation "
  867.                     "requires this directory be present to "
  868.                     "install the selected locale support files.\n"
  869.                     "\n"
  870.                     "This installation cannot continue.\n")
  871.                 (P_cleanUp)
  872.                 (exit (quiet))
  873.                 )
  874.             )
  875.             )
  876.         )
  877.  
  878.         (set #LanguageToDo    0)
  879.         (set #LanguageMax    1)
  880.         (while (< #LanguageToDo #LanguageMax)
  881.             (
  882.             (set #LanguageDesc (select #LanguageToDo
  883.                     "English"
  884.                     ""))
  885.  
  886.             (if (IN #LanguageID #LanguageToDo)
  887.                 (
  888.                 (if (IN #PkgOpts 0)
  889.                     (
  890.                     (working
  891.                         ("Sprache %s für %s wird installiert..."
  892.                         #LanguageDesc
  893.                         #BackupName)
  894.                     )
  895.                     (set #LHADir (TACKON "Catalogs" #LanguageDesc))
  896.                     (P_BuildLHADir)
  897.                     (run
  898.                         (prompt ("Jetzt werden die Katalog-Dateien für %s in der Sprache %s " 
  899.                                 #BackupName #LanguageDesc)
  900.                             "ausgepackt und im Verzeichnis "
  901.                             ("LOCALE:Catalogs/%s installiert." #LanguageDesc)
  902.                             )
  903.                         (help ("Die Katalog-Dateien (%s) für %s müssen aus dem Archiv %s mit Lha ausgepackt werden und"
  904.                                 #BackupName #LanguageDesc #BackupBinLHA)
  905.                             (" werden dann im Verzeichnis LOCALE:Catalogs/%s abgelegt." #LanguageDesc)
  906.                             )
  907.                         (confirm)
  908.                         ("%s -x2 e \"%s\" %s/#?.catalog LOCALE:Catalogs/" 
  909.                             #LHAName #BackupBinLHA
  910.                             #LHADir
  911.                         )
  912.                     )
  913.                     (transcript ("Unpacked from %s: %s to %s" #BackupBinLHA #LanguageDesc
  914.                             (TACKON "Catalogs" #LanguageDesc))
  915.                     )
  916.                     )
  917.                 )
  918.                 (if (IN #PkgOpts 1)
  919.                     (
  920.                     (working
  921.                         ("Sprache %s für %s wird installiert..."
  922.                         #LanguageDesc
  923.                         #RestoreName)
  924.                     )
  925.                     (set #LHADir (TACKON "Catalogs" #LanguageDesc))
  926.                     (P_BuildLHADir)
  927.                     (run
  928.                         (prompt ("Jetzt werden die Katalog-Dateien für %s in der Sprache %s "
  929.                                 #RestoreName #LanguageDesc)
  930.                             "ausgepackt und im Verzeichnis"
  931.                             (" LOCALE:Catalogs/%s installiert." #LanguageDesc)
  932.                             )
  933.                         (help ("Die Katalog-Dateien (%s) für %s müssen aus dem Archiv %s mit Lha ausgepackt werden und"
  934.                                 #RestoreName #LanguageDesc #RestoreBinLHA)
  935.                             (" werden dann im Verzeichnis LOCALE:Catalogs/%s abgelegt." #LanguageDesc)
  936.                             )
  937.                         (confirm)
  938.                         ("%s -x2 e \"%s\" %s/#?.catalog LOCALE:Catalogs/"
  939.                             #LHAName #RestoreBinLHA
  940.                             #LHADir
  941.                         )
  942.                     )
  943.                     (transcript ("Unpacked from %s: %s to %s" #RestoreBinLHA #LanguageDesc
  944.                             (TACKON "Catalogs" #LanguageDesc))
  945.                     )
  946.                     )
  947.                 )
  948.                 )
  949.             )
  950.  
  951.             (set #LanguageToDo    (+ #LanguageToDo 1))
  952.             )
  953.         )
  954.         )
  955.     )
  956.     )
  957. )
  958.  
  959.  
  960. ; ****************************
  961. ; * General P_cleanUp routine
  962. ; ****************************
  963. ;
  964. (procedure P_cleanUp
  965.     (
  966.     ; ****************************
  967.     ; * exit the program.
  968.     ; ****************************
  969.     ;
  970.  
  971.     (complete 100)
  972.     )
  973. )
  974.  
  975.  
  976. ; *************************************************************************
  977. ; *                         ACTUAL START OF SCRIPT
  978. ; *
  979. ; * Ask all questions for the user now, do all of the work later.
  980. ; *************************************************************************
  981. ;
  982.  
  983. (onerror
  984.     (P_cleanUp)
  985.     (exit (quiet))
  986. )
  987.  
  988.  
  989. ; ****************************
  990. ; * set the default destination
  991. ; ****************************
  992. ;
  993. (set @default-dest    #DefaultDestination)
  994. (set #defaultUtilDir    @default-dest)
  995.  
  996. ; Versions-Abfrage: Backup & Restore verlangen Kickstart >= 39
  997. (if (< #OSVersion 39)
  998.     (
  999.     (message
  1000.         "\nSie haben leider kein Kickstart/Workbench 3.0 in Betrieb.\n"
  1001.         "Backup und Restore benötigt zum Betrieb mindestens Kickstart V39"
  1002.         "\n")
  1003.     (P_cleanUp)
  1004.     (exit (quiet))
  1005.     )
  1006. )
  1007.  
  1008. (P_setPkgOpts)
  1009.  
  1010.  
  1011. ; ****************************
  1012. ; * if (#PkgOpts & 0) or (#PkgOpts & 1), ask the user which locale files to install,
  1013. ; * but don't actually do it yet.
  1014. ; ****************************
  1015. ;
  1016. ;(debug ("WB %ld / OS %ld" #WBVersion #OSVersion))
  1017.  
  1018. (if (AND (OR (IN #PkgOpts 0) (IN #PkgOpts 1)) (>= #WBVersion 38))
  1019.     (
  1020.     (set #LanguageID 1)                ; default language is 0 (Deutsch)
  1021.  
  1022.     (set #TotalFiles        (+ #TotalFiles 2))    ; 2 set of locale files
  1023.  
  1024.     (set #LanguageID
  1025.         (askoptions
  1026.             (prompt
  1027.                 ("Bitte wählen Sie die bevorzugten Fremdsprachen (außer Deutsch), in denen Sie %s möglicherweise betreiben möchten." #ProductName)
  1028.             )
  1029.             (help
  1030.                 "Zur Zeit besteht die einzige Alternative zu Deutsch in Englisch.\n"
  1031.                 "\n\n"
  1032.                 "*** English\n"
  1033.                 "Dies sollten Sie auswählen, wenn Sie englischsprachige Menu- und Fenster-Texte möchten.\n"
  1034.                 "\n"
  1035.                 @askchoice-help
  1036.             )
  1037.             (choices
  1038.                 ; bit position 0 -- todo & 1
  1039.                 ;
  1040.                 ("%sEnglish" #AskPrefix)
  1041.             )
  1042.             (default #LanguageID)
  1043.         )
  1044.     )
  1045. ;    (debug ("#LanguageID = %ld" #LanguageID))
  1046.     )
  1047.     (set #LanguageID 0)
  1048. )
  1049.  
  1050. (set #BackupDir @default-dest)
  1051. (set continueOn        0)
  1052.  
  1053. (onerror
  1054.     (P_cleanUp)
  1055.     (exit (quiet))
  1056. )
  1057.  
  1058. (while (AND (<> continueOn 1) (> @user-level 0))
  1059.     (
  1060.  
  1061.     ; ****************************
  1062.     ; * if (#PkgOpts & 0), ask the user where to install Backup
  1063.     ; * but don't actually do it yet.
  1064.     ; ****************************
  1065.     ;
  1066.     (if (IN #PkgOpts 0)            ; if bit position 0 is on
  1067.         (
  1068.         (set #setDirPathWhy    (cat ("wo Sie %s V%s installiert haben möchten." #BackupName #BackupVersionNum)
  1069.                     "\n"
  1070.                     "Dieses Verzeichnis wird bei der Installation angelegt, wenn es noch nicht existiert.") )
  1071.         (set #setDirPathHelp     (cat "Workbench-Benutzer sollten diese Programme in einem "
  1072.                     "Verzeichnis installieren, das von der Workbench aus "
  1073.                     "erreicht werden kann.  CLI/Shell-Benutzer, können sie"
  1074.                     " in Ihrem C: Verzeichnis installieren (oder jedem "
  1075.                     "anderen Verzeichnis im Suchpfad).\n") )
  1076.         (set #DirPath        #BackupDir)
  1077.         (P_setDirPath)
  1078.  
  1079.         (set #BackupDir        #DirPath)
  1080.         (set @default-dest    #BackupDir)
  1081.  
  1082.         (set #TotalFiles    (+ #TotalFiles #BackupFileCount))
  1083.  
  1084.         (set #BackupHelpDir    (TACKON #BackupDir "Guide"))
  1085.         (set #BackupScriptDir    (TACKON #BackupDir "BackupScripts"))
  1086.         (set #BackupSourceDir    (TACKON #BackupDir "BackupSource"))
  1087.         (set #BackupCatalogDir    (TACKON #BackupDir "BackupCatalogs"))
  1088.         (set #BackupAppIconName    (TACKON #BackupDir "Backup_AppIcon"))
  1089.  
  1090.         (if (> @user-level 1)
  1091.             (
  1092.             ; ****************************
  1093.             ; jetzt noch das Directory für die Protokolle abfragen 
  1094.             ; ****************************
  1095.  
  1096.             (set #setDirPathWhy    (cat ("wo %s seine Sicherungsprotokolle ablegen soll." #BackupName)
  1097.                         "\n"
  1098.                         "Dieses Verzeichnis wird bei der Installation angelegt, wenn es noch nicht existiert.") )
  1099.             (set #setDirPathHelp     (cat "Backup kann bei jeder Sicherung ein Protokoll erstellen, "
  1100.                         "das von Restore verwendet werden kann. Das Verzeichnis "
  1101.                         "für diese Protokolle wird als TOOL TYPE in die "
  1102.                         "Piktogramme von Backup und Restore eingetragen\n") )
  1103.             (set #DirPath        #BackupCatalogDir)
  1104.             (P_setDirPath)
  1105.  
  1106.             (set #BackupCatalogDir        #DirPath)
  1107.             )
  1108.         )
  1109.         )
  1110.     )
  1111.  
  1112.  
  1113.     ; ****************************
  1114.     ; * if (#PkgOpts & 1), ask the user where to install Restore,
  1115.     ; * but don't actually do it yet.
  1116.     ; ****************************
  1117.     ;
  1118.     (if (IN #PkgOpts 1)                        ; if bit position 1 is on
  1119.         (
  1120.         (set #RestoreDir    #BackupDir)
  1121.  
  1122.         (if (> @user-level 1)
  1123.             (
  1124.             (set #setDirPathWhy    (cat ("wo Sie %s V%s installiert haben möchten" #RestoreName #RestoreVersionNum)
  1125.                             "\n"
  1126.                             "Dieses Verzeichnis wird bei der Installation angelegt, wenn es noch nicht existiert.") )
  1127.             (set #setDirPathHelp    ("Das Programm %s können Sie entweder im selben Verzeichnis wie %s anlegen, oder dort, wo Sie normalerweise Ihre Hilfsprogramme aufbewahren.\n" #RestoreName #BackupName))
  1128.             (set #DirPath        #RestoreDir)
  1129.             (P_setDirPath)
  1130.             (set #RestoreDir    #DirPath)
  1131.             (set #defaultUtilDir    #DirPath)
  1132.             )
  1133.         )
  1134.  
  1135.         (set #TotalFiles    (+ #TotalFiles #RestoreFileCount))
  1136.  
  1137.         (set #RestoreHelpDir    (TACKON #RestoreDir "Guide"))
  1138.         (set #RestoreSourceDir    (TACKON #RestoreDir "RestoreSource"))
  1139.         )
  1140.     )
  1141.  
  1142.  
  1143.     ; ****************************
  1144.     ; * if (#PkgOpts & 2), ask the user where to install the package's Help files
  1145.     ; * from disk 1.
  1146.     ; ****************************
  1147.     ;
  1148.     (if (IN #PkgOpts 2)                        ; if bit position 2 is on
  1149.         (
  1150.         (if (> @user-level 1)
  1151.             (
  1152.             (if (IN #PkgOpts 0)
  1153.                 (set #setDirPathWhy    (cat "wo Sie die Backup-Hilfedateien installiert haben möchten."
  1154.                             "\n"
  1155.                             "Dieses Verzeichnis wird bei der Installation angelegt, wenn es noch nicht existiert.") )
  1156.                 (set #setDirPathHelp    (cat "In diesem Verzeichnis werden diverse Text- Bild-Dateien der "
  1157.                             ("Online-Hilfe für %s abgelegt.\n" #BackupName) )
  1158.                 )
  1159.                 (set #DirPath        #BackupDir)
  1160.                 (P_setDirPath)
  1161.  
  1162.                 (set #BackupHelpDir    #DirPath)
  1163.             )
  1164.             (if (IN #PkgOpts 1)
  1165.                 (set #setDirPathWhy    "wo Sie die Restore-Hilfedateien installiert haben möchten.")
  1166.                 (set #setDirPathHelp    (cat "In diesem Verzeichnis werden diverse Text- Bild-Dateien der "
  1167.                             ("Online-Hilfe für %s abgelegt.\n" #RestoreName) )
  1168.                 )
  1169.                 (set #DirPath        #RestoreDir)
  1170.                 (P_setDirPath)
  1171.  
  1172.                 (set #RestoreHelpDir    #DirPath)
  1173.             )
  1174.             )
  1175.             (
  1176.             (set #BackupHelpDir    (TACKON #BackupDir "Guide"))
  1177.             (set #RestoreHelpDir    (TACKON    #RestoreDir "Guide"))
  1178.             )
  1179.         )
  1180.  
  1181.         (if (IN #PkgOpts 0)
  1182.             (set #TotalFiles (+ #TotalFiles #BackupHelpFileCount))
  1183.         )
  1184.         (if (IN #PkgOpts 1)
  1185.             (set #TotalFiles (+ #TotalFiles #RestoreHelpFileCount))
  1186.         )
  1187.         )
  1188.     )
  1189.  
  1190.  
  1191.     ; ****************************
  1192.     ; * if (#PkgOpts & 3), ask the user where to install the package's Sample Script files
  1193.     ; * from disk 1.
  1194.     ; ****************************
  1195.     ;
  1196.     (if (IN #PkgOpts 3)        ; if bit position 3 is on
  1197.         (
  1198.         (if (> @user-level 1)
  1199.             (
  1200.             (set #setDirPathWhy    (cat "wo Sie die Beispiel-Scripts für Backup installiert haben möchten."
  1201.                         "\n"
  1202.                         "Dieses Verzeichnis wird bei der Installation angelegt, wenn es noch nicht existiert.") )
  1203.             (set #setDirPathHelp    (cat "In diesem Verzeichnis werden einige Beispiel-Skript-Dateien "
  1204.                             ("für %s abgelegt.\n" #BackupName) )
  1205.             )
  1206.             (set #DirPath        (TACKON #BackupDir "BackupScripts") )
  1207.             (P_setDirPath)
  1208.  
  1209.             (set #BackupScriptDir    #DirPath)
  1210.             )
  1211.             (
  1212.             (set #BackupScriptDir     (TACKON #BackupDir "BackupScripts") )
  1213.             )
  1214.         )
  1215.  
  1216.         (set #TotalFiles (+ #TotalFiles #SampleFileCount))
  1217.         )
  1218.     )
  1219.  
  1220.  
  1221.     ; ****************************
  1222.     ; * if (#PkgOpts & 4), ask the user where to install the Backup Source code
  1223.     ; * from disk 1.
  1224.     ; ****************************
  1225.     ;
  1226.     (if (IN #PkgOpts 4)        ; if bit position 4 is on
  1227.         (
  1228.         (if (> @user-level 1)
  1229.             (
  1230.             (set #setDirPathWhy    (cat "wo Sie den Backup-Quellcode installiert haben möchten."
  1231.                         "\n"
  1232.                         "Dieses Verzeichnis wird bei der Installation angelegt, wenn es noch nicht existiert.") )
  1233.             (set #setDirPathHelp    (cat "In diesem Verzeichnis werden sämtliche Quellcode-"
  1234.                         ("Dateien für %s abgelegt.\n" #BackupName) )
  1235.             )
  1236.             (set #DirPath        (TACKON #BackupDir "BackupSource") )
  1237.             (P_setDirPath)
  1238.  
  1239.             (set #BackupSourceDir    #DirPath)
  1240.             )
  1241.             (
  1242.             (set #BackupSourceDir (TACKON #BackupDir "BackupSource") )
  1243.             )
  1244.         )
  1245.  
  1246.         (set #TotalFiles (+ #TotalFiles #BackupSourceFileCount))
  1247.         )
  1248.     )
  1249.  
  1250.     ; ****************************
  1251.     ; * if (#PkgOpts & 5), ask the user where to install the Restore Source code
  1252.     ; * from disk 1.
  1253.     ; ****************************
  1254.     ;
  1255.     (if (IN #PkgOpts 5)        ; if bit position 5 is on
  1256.         (
  1257.         (if (> @user-level 1)
  1258.             (
  1259.             (set #setDirPathWhy    (cat "wo Sie den Restore-Quellcode installiert haben möchten."
  1260.                         "\n"
  1261.                         "Dieses Verzeichnis wird bei der Installation angelegt, wenn es noch nicht existiert.") )
  1262.             (set #setDirPathHelp    (cat "In diesem Verzeichnis werden sämtliche Quellcode-"
  1263.                         ("Dateien für %s abgelegt.\n" #RestoreName) )
  1264.             )
  1265.             (set #DirPath        (TACKON #RestoreDir "RestoreSource") )
  1266.             (P_setDirPath)
  1267.  
  1268.             (set #RestoreSourceDir    #DirPath)
  1269.             )
  1270.             (
  1271.             (set #RestoreSourceDir (TACKON #RestoreDir "RestoreSource") )
  1272.             )
  1273.         )
  1274.  
  1275.         (set #TotalFiles (+ #TotalFiles #RestoreSourceFileCount))
  1276.         )
  1277.     )
  1278.  
  1279.     ; ****************************
  1280.     ; * ask the user where to place the Tape Drive Data Base
  1281.     ; ****************************
  1282.     ;
  1283.     (if (or (IN #PkgOpts 0) (IN #PkgOpts 1))    ; if bit position 0 or 1 is on
  1284.         (
  1285.         (if (> @user-level 1)
  1286.             (
  1287.             (set #setFilePathWhy    "wo Backup die Bandlaufwerks-Datenbank ablegen soll.")
  1288.             (set #setFilePathHelp    (cat "Backup und Restore benutzen eine Datenbank, um sich die "
  1289.                         "Eigenschaften von Bandlaufwerken zu merken.\n"
  1290.                         "Hier legen Sie fest, wo diese Datenbank angelegt wird.\n")
  1291.             )
  1292.             (set #FilePath        #TapeDriveDataBase)
  1293.             (P_setFilePath)
  1294.  
  1295.             (set #TapeDriveDataBase    #FilePath)
  1296.             )
  1297.         )
  1298.         )
  1299.     )
  1300.  
  1301.     ; ****************************
  1302.     ; * ask the user where to place the DiskSave File
  1303.     ; ****************************
  1304.     ;
  1305.     (if (IN #PkgOpts 0)    ; if bit position 0 is on
  1306.         (
  1307.         (if (> @user-level 1)
  1308.             (
  1309.             (set #setFilePathWhy    "wo Backup seine Reservedatei für Diskettensicherungen anlegen soll.")
  1310.             (set #setFilePathHelp    (cat "Die Reservedatei ermöglicht, bei einem Lese- oder Schreibfehler "
  1311.                         "die aktuelle Diskette zu verwerfen und durch eine andere zu "
  1312.                         "ersetzen, wobei die neue Diskette wieder von Spur 1 an "
  1313.                         "bespielt wird.\n")
  1314.             )
  1315.             (set #FilePath        #BackupDiskSave)
  1316.             (P_setFilePath)
  1317.  
  1318.             (set #BackupDiskSave    #FilePath)
  1319.             )
  1320.         )
  1321.         )
  1322.     )
  1323.  
  1324.     ; letzte Nachfrage...
  1325.     (if (= 1 (askbool
  1326.             (prompt    (cat ("%s wird in folgenden Verzeichnissen installiert:\n" #BackupName)
  1327.                 (if (IN #PkgOpts 0) ("\nBackup in «%s»\nBackup-Protokolle : %s" #BackupDir #BackupCatalogDir))
  1328.                 (if (IN #PkgOpts 1) ("\nRestore in «%s»" #RestoreDir))
  1329.                 (if (AND (IN #PkgOpts 2) (IN #PkgOpts 0)) ("\nBackup  Hilfedateien in «%s»" #BackupHelpDir))
  1330.                 (if (AND (IN #PkgOpts 2) (IN #PkgOpts 1)) ("\nRestore Hilfedateien in «%s»" #RestoreHelpDir))
  1331.                 (if (IN #PkgOpts 3) ("\nBeispiel-Scripts in «%s»" #BackupScriptDir))
  1332.                 (if (IN #PkgOpts 4) ("\nBackup  Quellcode in «%s»" #BackupSourceDir))
  1333.                 (if (IN #PkgOpts 5) ("\nRestore Quellcode : %s" #RestoreSourceDir))
  1334.                 (if (OR (IN #PkgOpts 1) (IN #PkgOpts 0)) ("\nBandlaufwerks-Datenbank in «%s»" #TapeDriveDataBase))
  1335.                 (if (OR (IN #PkgOpts 1) (IN #PkgOpts 0)) ("\nDisketten-Reservedatei in «%s»" #BackupDiskSave))
  1336.                 (if (OR (IN #PkgOpts 1) (IN #PkgOpts 0)) ("\nBackup-AppIcon in «%s»" #BackupAppIconName))
  1337.                 "\n\nIst das richtig?"
  1338.                 )
  1339.             )
  1340.  
  1341.             (help    ("Diese Anzeige zeigt Ihnen noch einmal, in welchem Verzeichnis der Installer %s installieren wird. " #BackupName)
  1342.                 (cat "Dies dient zu Ihrer Sicherheit, damit Sie genau "
  1343.                 "wissen, wo die Dateien hinkopiert werden.\n"
  1344.                 "\n"
  1345.                 "Um andere Verzeichnise zu wählen, drücken Sie "
  1346.                 "den NEIN-Knopf.  Ansonsten drücken Sie den "
  1347.                 "JA-Knopf, um die Installation fortzusetzen.\n"
  1348.                 )
  1349.             )
  1350.         )
  1351.         (set continueOn        1)
  1352.         )
  1353.     )
  1354.     )
  1355. )
  1356.  
  1357.  
  1358. (complete 0)
  1359.  
  1360. (message "\nWollen Sie Backup jetzt installieren?"
  1361.     (help    "Sobald Sie den WEITER-Knopf gedrückt haben, werden die "
  1362.         "ausgewählten Programmteile installiert. Jetzt haben sie"
  1363.         " die letzte Möglichkeit "
  1364.         "diesen Vorgang abzubrechen, ohne Teile der ausgewählten"
  1365.         " Programmteile zu installieren.\n"
  1366.         "\n"
  1367.         "Nach dem Drücken von WEITER können Sie die Esc-Taste "
  1368.         "drücken, um die Installation abzubrechen.\n")
  1369. )
  1370.  
  1371.  
  1372. (onerror
  1373.     (P_cleanUp)
  1374.     (exit (quiet))
  1375. )
  1376.  
  1377. ;(askdisk
  1378. ;    (dest (substr #DiskInstall 0 (- (strlen #DiskInstall) 1)))
  1379. ;    (prompt ("Bitte die\nBackup-Installationsdiskette\n\n%s\n\nin ein Laufwerk einlegen" #DiskInstall))
  1380. ;    (help "Die Originaldiskette mit den Backup- und Restore-Archiven "
  1381. ;          "wird unbedingt gebraucht, um die Installation durchführen zu können."
  1382. ;          "\nSollten Sie die Archive bereits auf Ihre Festplatte kopiert haben,"
  1383. ;          (" können Sie den Namen '%s' mit Assign zuweisen." #DiskInstall)
  1384. ;    )
  1385. ;    (assigns)
  1386. ;)
  1387.  
  1388. (if (IN #PkgOpts 0)
  1389.     (P_BackupInstall)
  1390. )
  1391. (if (IN #PkgOpts 1)
  1392.     (P_RestoreInstall)
  1393. )
  1394. (if (IN #PkgOpts 2)
  1395.     (P_HelpFilesInstall)
  1396. )
  1397. (if (IN #PkgOpts 3)
  1398.     (P_SamplesInstall)
  1399. )
  1400. (if (IN #PkgOpts 4)
  1401.     (P_SourceInstall)
  1402. )
  1403.  
  1404. (if (AND (AND (OR (IN #PkgOpts 0) (IN #PkgOpts 2)) (>= #WBVersion 38)) (<> #LanguageID 0))
  1405.     (P_LocaleInstall)
  1406. )
  1407.  
  1408. (P_cleanUp)
  1409. (exit)
  1410.